package inge_soft.gestoriusNuevo.business.logic;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class MandadorMailDesdeGmail {

	private String origenMail;
	private String contrasenia;
	private Properties props;
	private Session session;
	private MimeMessage message;
	private Transport t;

	public MandadorMailDesdeGmail(String mailOrigen , String contraseniaMailOrigen) {
		
		this.origenMail = mailOrigen;
		this.contrasenia = contraseniaMailOrigen;
		
		props = new Properties();
		props.setProperty("mail.smtp.host", "smtp.gmail.com");
		props.setProperty("mail.smtp.starttls.enable", "true");
		props.setProperty("mail.smtp.port", "587");
		props.setProperty("mail.smtp.user", mailOrigen);
		props.setProperty("mail.smtp.auth", "true");
		
	}

	public void mandarMail(String destino,String asunto , String mensaje) {
		
		// Preparamos la sesion
		session = Session.getDefaultInstance(props);
		
		// Construimos el mensaje
		message = new MimeMessage(session);
		
		// intento enviarlo
		try {
			message.setFrom(new InternetAddress(this.origenMail));
			message.addRecipient(Message.RecipientType.TO, new InternetAddress(destino));
			message.setSubject(asunto);
			message.setText(mensaje);
			// Lo enviamos.
			t = session.getTransport("smtp");
			t.connect(this.origenMail, this.contrasenia);
			t.sendMessage(message, message.getAllRecipients());

		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		} finally {
			try {
				t.close();
			} catch (MessagingException e) {
				e.printStackTrace();
			}
		}

	}

}
